﻿using UnityEngine;

namespace Mars.GpuInstance
{
    public class InstancerConstants
    {
        public static int COUNT_PER_DRAW = 1000;    //每帧绘制最大的数量
        
        public const float COMPUTE_SHADER_THREAD_COUNT = 128;
        public const int ADD_COUNT = 50;  //数组每次新增的数量
        
        public const string KEYWORD_GPU_BINDPOSEOFFSET = "GPU_BINDPOSEOFFSET";
        public const string KEYWORD_ANI_NON_PROP_SCALING = "_ANIM_NON_PROP_SCALING";
        
        public static readonly int ANIM_TEX = Shader.PropertyToID("_AnimTex");
        public static readonly int ANIMATION_BUFFER = Shader.PropertyToID("gpuiAnimationBuffer");
        public static readonly int TOTAL_NUMBER_OF_BONES = Shader.PropertyToID("totalNumberOfBones");
        public static readonly int CURRENT_TIME = Shader.PropertyToID("currentTime");
        public static readonly int FRAME_RATE = Shader.PropertyToID("frameRate");
        public static readonly int BINDPOSE_OFFSET = Shader.PropertyToID("bindPoseOffset");
        public static readonly int TRANSFORM_OFFSET = Shader.PropertyToID("transformOffset");
        public static readonly int AMBIENT_TERRAIN_TYPE = Shader.PropertyToID("_AmbientTerrainType");
        public static readonly int GPU_ClipBoneData = Shader.PropertyToID("_ClipBoneData");
        public static readonly int GPU_AnimationData = Shader.PropertyToID("_AnimationData");
        public static readonly int GPU_CurrentClipData = Shader.PropertyToID("_CurAnimClipData");
        public static readonly int GPU_CampColorData = Shader.PropertyToID("_CampColorData");
        public static readonly int GPU_RimEffectIndex = Shader.PropertyToID("_RimEffectIndex");
        public static readonly int GPU_BrokenInfo = Shader.PropertyToID("_BrokenInfo");
        public static readonly int GPU_ANIM_LOD = Shader.PropertyToID("animLod");
        public static readonly int GPU_ShaderParam = Shader.PropertyToID("_ParamIndex");
    }
}
